<template>
  <div>
    <button @click="isShow = !isShow">显示/隐藏元素</button>

    <transition name="huazai">
      <div class="box" v-show="isShow"></div>
    </transition>
    <hr />
    <transition>
      <div class="box" v-show="isShow"></div>
    </transition>
  </div>
</template>

<script>
export default {
  name: "App",
  data() {
    return {
      isShow: true,
    };
  },
};
</script>

<style scoped>
.box {
  width: 300px;
  height: 300px;
  background: skyblue;
}

/* 控制动画的元素在进入时,和离开之后的样式 */
.v-enter,
.v-leave-to {
  opacity: 0;
}

/* 控制动画的元素在进入后和离开时的样式 */
.v-leave,
.v-enter-to {
  opacity: 1;
}

/* 控制动画的元素在进入的过程中和移出的过程中的过渡动画效果 */
.v-enter-active,
.v-leave-active {
  transition: all 1s linear;
}

/* 控制动画的元素在进入时,和离开之后的样式 */
.huazai-enter,
.huazai-leave-to {
  opacity: 0;
  transform: translateX(100px);
}

/* 控制动画的元素在进入的过程中和移出的过程中的过渡动画效果 */
.huazai-enter-active,
.huazai-leave-active {
  transition: all 1s linear;
}
</style>
